package NO03;

/*
 * 请实现一个函数，把字符串中的每个空格替换成"%20"，例如“We are happy.”，则输出“We%20are%20happy.”
 */
public class Space {
	public static String replaceSpace(StringBuffer str){
		//1. 计算有多少个空格
		int spaceCount = 0;
		for(int i=0; i<str.length(); i++){
			if(str.charAt(i) == ' '){
				spaceCount++;
			}
		}
		
		//2. 构造一个新的长度的str，来存放改造后的字符串
		int indexOld = str.length()-1;
		int newLength = str.length() + 2*spaceCount;
		str.setLength(newLength);
		int indexNew = newLength-1;
		
		//3. 开始遍历替换
		for(;indexOld>=0 && indexOld<indexNew; indexOld--){
			if(str.charAt(indexOld) == ' '){
				str.setCharAt(indexNew--, '0');
				str.setCharAt(indexNew--, '2');
				str.setCharAt(indexNew--, '%');
			}else{
				str.setCharAt(indexNew--, str.charAt(indexOld));
			}
		}
		
		return str.toString();
	}
	
	public static void main(String[] args) {
		String result = replaceSpace(new StringBuffer("We Are Happy."));
        System.out.println(result);
	}
}
